/*
 * Manhattan15Puzzle.h
 *
 *  Created on: 18/05/2011
 *      Author: frandres
 */

#ifndef MANHATTAN15PUZZLE_H_
#define MANHATTAN15PUZZLE_H_

#include "../datastructures/FifteenPuzzleNodeIDA.h"
#include "stdlib.h"

#define MOVE_UP 0
#define MOVE_DOWN 1
#define MOVE_LEFT 2
#define MOVE_RIGHT 3

#define ABS(X)	   (((X) < 0) ? -(X) : (X))

class Manhattan15Puzzle{
public:

	Manhattan15Puzzle();
	virtual ~Manhattan15Puzzle();

	unsigned short int initiate(int board[]);
	unsigned short int calculateHeuristic(int number, int position, int movement, int oldH);
	char*** heuristics;

};

#endif /* MANHATTAN15PUZZLE_H_ */
